package com.elasticsearch.model;

import lombok.Data;
import lombok.ToString;
import org.springframework.data.annotation.Id;
import org.springframework.data.elasticsearch.annotations.Document;
import org.springframework.data.elasticsearch.annotations.Field;
import org.springframework.data.elasticsearch.annotations.FieldType;

import java.io.Serializable;
import java.util.Date;

/**
 * @author: yzq
 * @date: 2018/8/22
 * @tableName: 项目表
 */
@Data
@ToString
@Document(indexName = "project",type = "customer", shards = 1, replicas = 0, refreshInterval = "-1")
public class Project implements Serializable {

    private static final long serialVersionUID = 3746429027279377741L;
    @Id
    @Field(type = FieldType.Long)
    private Long id;

    /**
     * 项目名称
     */
    @Field(type = FieldType.Text,analyzer = "ik_max_word", searchAnalyzer = "ik_max_word" , store = true)
    private String proName;

    /**
     * 项目编号
     */
    private String proCode;


    private Date addDateTime;
    /**
     * 项目起始时间
     */
    private Date startTime;

    /**
     * 项目终止时间
     */
    private Date endTime;

    /**
     * 是否政府采购项目 （1：是 0：否）
     */
    private Integer ifGovernmentPurchase;

    /**
     * 是否申报绩效目标 （1：是 0：否）
     */
    private Integer ifDeclarePerformanceGoals;


    private String projectAbstract;


    /**
     * 立项背景
     */
    private String projectNecessity;

    /**
     * 经费测算方法和依据
     */

    private String calculationOfFunds;

    /**
     * 可行性分析
     */
    private String proDeclarePracticability;

    /**
     * 中期绩效目标
     */
    private String midPerformanceGoals;

    /**
     * 年度绩效目标
     */
    private String performanceTargetSummary;

    /**
     * 其他情况说明
     */

    private String otherInformation;

    /**
     * 项目类型(0:一般 ；1：重要)
     * */
    private Integer projectType;

    /**
     * 是否预算申报部门入库  0未入库  1已入库
     */
    private Integer ifDepartmentStorage = 0;

    /**
     * 是否经费主管部门入库  0未入库  1已入库
     */
    private Integer ifMgtStorage = 0;

    /**
     * 是否经费批复  0否  1是
     */
    private Integer ifFundsReply = 0;

    /**
     * 是否业务归口部门入库  0未入库  1已入库
     */
    private Integer ifCentralizedStorage = 0;

    /**
     * 是否绩效监督部门入库  0未入库  1已入库
     */
    private Integer ifPerformControlStorage = 0;

    /**
     * 是否财务结算部门入库  0未入库  1已入库
     */
    private Integer ifSchoolStorage = 0;

    /**
     * 绩效监督部门审核最终评级（1优、2良、3中、4差）
     */
    private Integer reviewRating;


    /**
     * 绩效监督部门上报时进行绩效目标审核表的总体意见
     */
    private String generalOpinion;

    /**
     * 绩效监督部门上报时进行绩效目标审核表的整体问题
     */
    private String overallProblem;

    /**
     * 申报进程数 null 采购项目   0 校内大项目   1 小项目一上  2 小项目 二上  3 采购的应急项目
     */
    private Integer progressNum;


    private Integer currentGroupNumDeclare;
    

    private Integer currentGroupNumDept;



    /**
     * 经费主管部门当前所在会审组
     */
    private Integer currentGroupNumMgt;


    private Integer currentGroupNumPerformControl;




    /**
     * 修改时间
     */
    private Date updateDateTime = new Date();

    /**
     * 删除标志位(0：未删除；1：删除)
     */
    private Integer ifDelete = 0;

    /**
     * 启用禁用状态(0：禁用；1：启用)
     */
    private Integer useMark = 1;
}
